/**
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved. <br/>
 * 描述: 用户签名接口 <br/>
 *
 * @author framework generator
 * @date 2022年07月21日
 * @version 2.0
 */
package com.icinfo.cloud.provider.punish.usersign.mapper;

import com.icinfo.cloud.provider.punish.approval.dto.MemberOrgCenterVo;
import com.icinfo.cloud.provider.punish.approval.dto.MemberUserCenterVo;
import com.icinfo.cloud.provider.punish.common.publicsecurityentrust.vo.SendDingMessageVo;
import com.icinfo.cloud.provider.punish.usersign.model.MemberUserSign;
import com.icinfo.cloud.xzcf.provider.member.org.model.MemberOrg;
import com.icinfo.cloud.xzcf.provider.member.territory.model.MemberTerritory;
import com.icinfo.cloud.xzcf.provider.member.userinfo.model.MemberUserInfo;
import com.icinfo.framework.mybatis.mapper.common.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 描述: 用户签名信息表 member_user_sign 对应的Mapper接口.<br>
 *
 * @author framework generator
 * @date 2022年07月21日
 */
public interface MemberUserSignMapper extends Mapper<MemberUserSign> {
    /**
     * 根据用户id与orgCode 查询是否有本区域权限
     *
     * @param paramMap
     * @return {@link int}
     * @author liyafeng
     * @date 2022/9/5
     */
    int selectAreaDataPermissionNum(Map<String, Object> paramMap);

    /**
     * 根据用户id与orgCode 查询是否有单位参数配置 单独角色
     *
     * @param paramMap
     * @return {@link int}
     * @author liyafeng
     * @date 2022/9/5
     */
    int selectDeptParamPermissionNum(Map<String, Object> paramMap);

    /**
     * 获取上级areaCode
     *
     * @param areaCode
     * @return {@link List< String>}
     * @author liyafeng
     * @date 2022/9/5
     */
    List<String> selectSupAreaCode(@Param("areaCode") String areaCode);

    /**
     * 查询案审中心人员
     *
     * @param userParamMap
     * @return {@link List< MemberUserCenterVo>}
     * @author liyafeng
     * @date 2022/9/5
     */
    List<MemberUserCenterVo> selectMemberUserCenterVo(Map<String, Object> userParamMap);

    /**
     * 查询符合区域领域的机构信息
     *
     * @param centerOrgParamMap
     * @return {@link List< MemberOrgCenterVo>}
     * @author liyafeng
     * @date 2022/9/5
     */
    List<MemberOrgCenterVo> selectMemberOrgCenterVo(Map<String, Object> centerOrgParamMap);

    /**
     * 根据id查询用户姓名
     *
     * @param paramMap
     * @return {@link List< String>}
     * @author liyafeng
     * @date 2022/9/22
     */
    List<String> selectUserNameList(Map<String, Object> paramMap);

    /**
     * 描述: 根据登记机关查询条线
     *
     * @param orgCode
     * @return java.util.List<com.icinfo.cloud.xzcf.provider.member.territory.model.MemberTerritory>
     * @author zhanghongqiang
     * @Date 2022/10/25
     */
    List<MemberTerritory> selectUserBars(@Param("orgCode") String orgCode);

    /**
     * 描述： 根据部门编码查询部门信息
     *
     * @author: zhengqiang
     * @date: 2023/2/2
     * @param: orgCode
     * @return {@link List< MemberOrg>}
     **/
    List<MemberOrg> selectMemberOrg(@Param("orgCode") String orgCode);
    /**
     * 根据userId获取浙政钉id
     * @author liyafeng
     * @date 2023/5/24
      * @param paramMap
     * @return {@link MemberUserInfo}
     */
    List<MemberUserInfo> selectMemberUserInfoByUserIds(Map<String, Object> paramMap);


    /**
     * 通过部门编码与角色id获取dingId
     * @param orgCode
     * @param roleId
     * @return
     */
    List<SendDingMessageVo> getDingIdByOrgCodeAndRoleId(@Param("orgCode") String orgCode, @Param("roleId") String roleId);
}